Python - List Comprehension

পাইথন - তালিকা বোঝা

List Comprehension

আপনি যখন বিদ্যমান তালিকার মানগুলির উপর ভিত্তি করে একটি নতুন তালিকা তৈরি করতে চান তখন তালিকা বোঝা একটি সংক্ষিপ্ত বাক্য গঠন প্রদান করে।

Example:

ফলের তালিকার উপর ভিত্তি করে, আপনি একটি নতুন তালিকা চান যাতে শুধুমাত্র তাদের নামে "a" অক্ষর যুক্ত ফল থাকে।

Without List Comprehension

একটি তালিকা বোধগম্যতা ছাড়া, আপনার ভিতরে একটি শর্তসাপেক্ষ পরীক্ষা সহ বিবৃতির জন্য একটি লিখতে হবে:

Example

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []

for x in fruits:
  if "a" in x:
    newlist.append(x)

print(newlist)

With List Comprehension

তালিকা বোঝার সাথে, আপনি কোডের একক লাইন দিয়ে এটি করতে পারেন:

Example

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]

newlist = [x for x in fruits if "a" in x]

print(newlist)

The Syntax

List Comprehension Syntax
newlist = [expression for item in iterable if condition == True]
Expression
বর্তমান আইটেম বা পরিবর্তিত ফলাফল
Item
পুনরাবৃত্তির বর্তমান আইটেম
Iterable
পুনরাবৃত্তিযোগ্য বস্তু (তালিকা, টিপল, সেট, ইত্যাদি)
Condition
ফিল্টার শর্ত (ঐচ্ছিক)

ফেরত মান একটি নতুন তালিকা, পুরানো তালিকা অপরিবর্তিত রেখে.

Condition

একটি শর্ত হল একটি ফিল্টারের মতো যা শুধুমাত্র সেই আইটেমগুলিকে গ্রহণ করে যা সত্যে মূল্যায়ন করে৷

Example

newlist = [x for x in fruits if x != "apple"]

যদি কন্ডিশন if x != "apple" রিটার্ন করে True সব উপাদানের জন্য "apple" বাদে, নতুন তালিকায় "আপেল" বাদে সব ফল থাকবে।

শর্তটি ঐচ্ছিক এবং বাদ দেওয়া যেতে পারে:

Example

newlist = [x for x in fruits]

Iterable

একটি পুনরাবৃত্তিযোগ্য বস্তু যেকোনো পুনরাবৃত্তিযোগ্য বস্তু, তালিকা, টিপল, সেট ইত্যাদি হতে পারে।

Example

newlist = [x for x in range(10)]

একই উদাহরণ, কিন্তু একটি শর্ত সহ:

Example

newlist = [x for x in range(10) if x < 5]

Expression

অভিব্যক্তিটি পুনরাবৃত্তিকারীর বর্তমান আইটেম, তবে ফলাফলটিও, যা নতুন তালিকায় একটি তালিকা আইটেম হিসাবে শেষ হওয়ার আগে আপনি এটিকে ম্যানিপুলেট করতে পারেন:

Example

newlist = [x.upper() for x in fruits]

আপনি যে কোনও কিছুতে প্রভাব সেট করতে পারেন:

Example

newlist = ['hello' for x in fruits]

শর্তগুলি একটি অভিব্যক্তিতে একটি ফিল্টার হিসাবে নয়, তবে ফলাফলটি ম্যানিপুলেট করার উপায় হিসাবেও থাকতে পারে:

Example

newlist = [x if x != "banana" else "orange" for x in fruits]

Comprehension Examples

🔍
Filter with Condition
[x for x in fruits if "a" in x]
শুধুমাত্র "a" সহ ফল
🔄
Transform Items
[x.upper() for x in fruits]
ফলকে বড় অক্ষরে রূপান্তর করুন
🔢
Number Operations
[x*2 for x in range(5)]
সংখ্যা দ্বিগুণ করুন
🎯
Conditional Expression
[x if x>0 else 0 for x in nums]
নেতিবাচক সংখ্যাকে 0 এ রূপান্তর করুন

How List Comprehension Works

1
Start with Iterable
fruits = ["apple", "banana", "cherry"]
2
Apply Condition Filter
if x == 'banana' → Only items where condition is True
3
Create New List
Collect filtered items into new list: ['banana']

Exercise

নিম্নলিখিত কোড বিবেচনা করুন: ফল = ['আপেল', 'কলা', 'চেরি'] newlist = [ফলের x এর জন্য x যদি x == 'কলা'] নতুন তালিকার মান কী হবে?

['apple', 'cherry']
✗ ভুল! শর্ত হল x == 'কলা', তাই 'আপেল' এবং 'চেরি' বাদ দেওয়া হয়েছে
['banana']
✓ ঠিক আছে! তালিকা বোধগম্যতা শুধুমাত্র 'কলা'-এর সমান আইটেমগুলিকে ফিল্টার করে
True
✗ ভুল! একটি তালিকা বোঝা সর্বদা একটি তালিকা প্রদান করে, একটি বুলিয়ান মান নয়